package com.community.util;

import com.baomidou.mybatisplus.extension.exceptions.ApiException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * <p>
 * 文件工具类
 * </p>
 *
 * @author ZWYZY
 * @since 2020/6/15
 */
@Service
public class FIleUtils {

    @Value("${file.staticAccessPath}")
    private String staticAccessPath;
    @Value("${file.uploadFolder}")
    private String uploadFolder;

    /**
     * 单文件上传
     */
    public String upload(String dirPath, String fileName, MultipartFile file) {
        File filePath = new File(dirPath);
        if (!filePath.exists()) {
            filePath.mkdirs();
        }
        try {
            file.transferTo(new File(filePath, fileName));
            System.out.println("文件上传成功，路径为：" + filePath + "\\" + fileName);
            return staticAccessPath + fileName;
        } catch (Exception e) {
            System.out.println("文件上传失败");
            throw new ApiException("文件上传失败");
        }
    }

    /**
     * 删除单个文件
     *
     * @param fileName 要删除的文件的文件名
     * @return 单个文件删除成功返回true，否则返回false
     */
    public boolean deleteFile(String fileName) {
//        File file = new File(rootPath + fileName);
        File file = new File(fileName);
        // 如果文件路径所对应的文件存在，并且是一个文件，则直接删除
        if (file.exists() && file.isFile()) {
            if (file.delete()) {
                System.out.println("删除单个文件" + fileName + "成功！");
                return true;
            } else {
                System.out.println("删除单个文件" + fileName + "失败！");
                return false;
            }
        } else {
            System.out.println("删除单个文件失败：" + fileName + "不存在！");
            return false;
        }
    }
}